Reed-Solomon code is a technique for adding fault tolerance to data by adding an amount of code data. Both encoding and decoding involve matrix multiplication. To encode a message, a vector representing the data to be encoded is multiplied by a distribution matrix to obtain a coded message. After the message passes through a data link, which may result in one or more erasures to the message, a decoder decodes the potentially corrupted message by multiplying the message by an inversion matrix that is based on the distribution matrix to obtain a decoded matrix. The complexity of matrix multiplication leads to difficulties in efficiently implementing a decoder in circuitry.